package com.jielin.handling.service.auditresult;

import com.alibaba.fastjson.JSONObject;
import com.jielin.handling.entity.auditrecorder.AuditRecoder;
import com.jielin.handling.entity.auditresult.AuditResult;
import com.jielin.handling.entity.police.Cases;
import com.jielin.handling.entity.tsuspect.TSuspec;
import com.jielin.handling.entity.vo.AuditRecordVo;
import com.jielin.handling.entity.vo.AuditResultVo;
import com.jielin.handling.entity.vo.CaseAndSuspectVo;
import com.jielin.handling.entity.vo.CaseAuditVo;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by wangjienice on 2019-04-02.
 */
public interface AuditFailedService {
    List<AuditResult> auditFailed(AuditResult auditresult);//卷宗审核不通过------

    List<AuditResult> throughAuditing(AuditResult auditresult);//审核已通过

    List<Cases> waitCheck(Cases casess);//待审核文件列表-----

    List<Cases> dossierInformation(Cases cases);//卷宗信息

    Integer updateMaterial(AuditResult auditResult);//卷宗状态改变

    List<Cases> completeCase(Cases casess);//根据民警id查询案件状态为已完结的案件信息

    CaseAuditVo selectAccessLibrary(String unicode);//统计分析卷宗出入库

    List<AuditResult> selectAccessList(AuditResult auditResult);//卷宗出入库详情列表

    List<AuditRecoder> selectInAndOutAuditById(String id, int pageSize, int pageNum);//根据卷综id查询卷宗出入库详情

    int entryLibrary(HashMap<String, String> map);//卷宗入库

    int borrowDossier(HashMap<String, String> map);//卷宗借閱

    String selectRecoderId(String caseCode);//查询记录表中为借阅状态的那条记录的id

    int returnDossier(HashMap<String, String> map);//借阅归还

    int transferDossier(JSONObject jsonObject);//卷宗移交

    List<AuditRecoder> transferList(AuditRecoder auditRecoder);

    int insertAudit(AuditResult auditResult);//卷宗新增

    int updataWithdraw(String id, String caseCode, String policeId, String caseSuspectId);//卷宗撤回状态改变

    String selectMaterialPassRate(String unitCode);// 统计该单位民警材料通过

    List<AuditResultVo> selectMaterialGroupByPolice(String unitCode, String policeCode, String policeName);// 统计该单位民警材料通过率列表

    List<AuditResult> selectMaterialByCaseCode(AuditResult auditResult);//根据案件编号查询案件关联的所有卷宗信息

    List<AuditResult> selectMaterialByAccessLibrary(AuditResult auditResult);//根据案件编号查询案件关联的卷宗状态为未入柜卷宗信息

    List<AuditResult> selectDosserList(String caseCode, String materialStatus, String policeId, String handleUnitCode);//根据案件编号获取该案件下面的卷宗,嫌疑人姓名,登记时间下拉框
    List<AuditResult> selectSuspectDosserList(String caseCode, String materialStatus,String policeId);

    Map selectCaseAndSuspect(String caseCode, String idValue);//根据案件编号和嫌疑人身份证号查询卷宗和案件的详情信息

    List<AuditRecoder> selectInAndOut(AuditRecoder auditRecoder);//卷宗出入库------卷宗出入库详情列表

    List<AuditResult> selectByCaseCode(String caseCode);//根据案件编号查询案件下所有的卷宗信息(以案件为单位)

    List<AuditResult> selectAllAuditByUnitCode(AuditRecoder auditRecoder);//根据案件编号查询案件下所有的卷宗信息(以案件为单位)

    AuditResult selectById(String id);//根据卷宗记录id查询卷宗信息

    int insertAuditRecorde(AuditResult auditResult);//审核结果记录

    List<AuditResult> selectSuectByAccessLibrary(String name, String caseCode);//根据案件编号查询案件关联的卷宗状态为4种状态的人员下拉框

    List<AuditResult> selectCasecodeInCabin(String handleUnitCode, String drawerCode);//根据单位编号查询案管柜里面卷宗所对应的案件

    Map selectStateInCabin(String handleUnitCode);//根据单位编号查询所有案管柜的状态

    CaseAndSuspectVo selectCountInCabin(String handleUnitCode);//根据单位编号查询柜子未使用和使用的个数

    List<CaseAndSuspectVo> selectCabinetNumber(String id);//根据单位编号查询柜子号码

    List<TSuspec> waitCheckSuspectList(String unicode,String caseCode,String materialStatus);//待审核文件嫌疑人下拉框
}
